﻿Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
Ext.define('HMSDesktop.Login', {
	extend : 'Ext.window.Window',
	id : 'loginWin',
	title : '系统登录',
	width : 500,
	height : 360,
	resizable : false,
	draggable : true,
	layout : 'border',
	bodyStyle : 'padding:5px;',
	plain : false,
	closable : false,
	iconCls : 'lock',
	initComponent : function() {
		var me = this;

		me.logo = me.createLogo();
		me.form = me.createForm();

		me.items = [me.logo, me.form];
		this.dockedItems = [{
			xtype : 'toolbar',
			dock : 'bottom',
			// ui : 'footer',
			items : ['->', {
				text : '皮肤',
				id : 'btn_login_skin',
				icon : "/Admin/style/16Icons/163.png",
				enableToggle : true,
				height : 30,
				toggleHandler : function(btn, state) {
					if (state) {
						btn.setIcon('/Admin/style/16Icons/157.png');

						SetCookie('theme_def', 'blue');
						Ext.util.CSS.swapStyleSheet('theme',
								'../../extjs/resources/css/ext-all.css');
					} else {
						btn.setIcon('/Admin/style/16Icons/163.png');

						SetCookie('theme_def', 'gray');
						Ext.util.CSS
								.swapStyleSheet('theme',
										'../../extjs/resources/css/ext-all-gray.css');
					}
				}
			}, '-', {
				text : '记住我',
				id : 'btn_login_rememberme',
				icon : "/Admin/style/16Icons/emoticon_smile.png",
				enableToggle : true,
				height : 30
			}, '-', {
				text : '使用Chrome™(Google)浏览器运行本系统',
				cls : "x-btn-text-icon",
				height : 30,
				icon : "/Admin/style/google-chrome.png",
				tooltip : '本系统在Chrome™(Google)浏览器下运行,速度是普通浏览器的3倍以上',
				handler : function() {
					var googleWin = Ext.create('Ext.window.Window', {
						title : 'Google浏览器安装',
						width : 850,
						height : 450,
						closable : true,
						html : "<iframe src='http://www.google.com/chrome/eula.html?hl=zh-cn' style='width:100%; height:100%;'></iframe>"
					});
					googleWin.show();
				}
			}, '-', getBrowserName()]
		}, {
			xtype : 'toolbar',
			dock : 'bottom',
			ui : 'footer',
			height : 70,
			layout : {
				pack : 'center'
			},
			items : [{
						id : 'btnOnLogin',
						text : '登 录',
						handler : me.onLogin,
						scale : 'medium',
						width : 100,
						height : 35,
						icon : "/Admin/style/24Icons/gnome-keyring-manager.png",
						scope : me
					}, {
						text : '重 置',
						handler : me.onReset,
						scale : 'medium',
						width : 100,
						height : 35,
						icon : "/Admin/style/24Icons/new-view-refresh.png",
						scope : me
					}]
		}];
		me.callParent();

	},
	createLogo : function() {
		var me = this;
		var logo = new Ext.Panel({
					baseCls : 'x-plain',
					id : 'login-logo',
					region : 'center'
				});
		return logo;
	},
	createForm : function() {
		var me = this;
		var form = new Ext.form.FormPanel({
					id : 'loginform',
					region : 'south',
					border : false,
					bodyStyle : "padding: 20px 100px",
					baseCls : 'x-plain',
					defaults : {
						width : 280,
						labelWidth : 60,
						labelAlign : 'right'
					},
					height : 110,
					items : [{
								id : 'txtLoginName',
								xtype : 'textfield',
								fieldLabel : '登录名',
								name : 'loginname',
								allowBlank : false
							}, {
								id : 'txtPwd',
								xtype : 'textfield',
								inputType : 'password',
								name : 'pwd',
								fieldLabel : '密码',
								allowBlank : false
							}, {
								id : 'uiType',
								xtype : 'combo',
								fieldLabel : '界面模式',
								store : {
											fields : [{
														type : 'string',
														name : 'text'
													}, {
														type : 'string',
														name : 'value'
													}],
											data : [{
														text : '酷炫桌面',
														value : '0'
													}, {
														text : '经典菜单',
														value : '1'
													}]
										},
								valueField : 'value',
								displayField : 'text',
								queryMode : 'local',
								typeAhead : true,
								value : '0',
								editable : false
							}]
				});
		return form;
	},
	onLogin : function() {
		var me = this;
		var mask = new Ext.LoadMask(me, {
					msg : '登录验证中...',
					removeMask : true
				});
		if (me.form.form.isValid()) {
			mask.show();

			// 记住用户名密码
			if (Ext.getCmp('btn_login_rememberme').pressed) {
				SetCookie('txtLoginName', Ext.getCmp('txtLoginName').getValue());
				SetCookie('txtPwd', Ext.getCmp('txtPwd').getValue());
				SetCookie('uiType', Ext.getCmp('uiType').getValue());
			} else {
				delCookie('txtLoginName');
				delCookie('txtPwd');
				delCookie('uiType');
			}

			me.form.form.submit({
						url : '/Login/SubmitLogin',
						success : function(form, action) {
							if (Ext.getCmp('uiType').getValue() == 1)
								window.location.href = '/Desktop/Classics';// 桌面
							else
								window.location.href = '/Desktop/Index';// 经典菜单
						},
						failure : function(form, action) {
							mask.hide();
						}
					});
		}

	},
	onReset : function() {
		var me = this;
		me.form.form.reset();
	}
});
getBrowserName = function() {
	var name = '未知浏览器';
	if (Ext.isIE6)
		name = "IE6";
	if (Ext.isIE7)
		name = "IE7";
	if (Ext.isIE8)
		name = "IE8";
	if (Ext.isIE9)
		name = "IE9";
	if (Ext.isChrome)
		name = "Chrome";
	if (Ext.isOpera)
		name = "Opera";
	if (Ext.isSafari)
		name = "Safari";
	if (Ext.isGecko)
		name = "FireFox";
	return name;
};
Ext.onReady(function() {

			var win = new HMSDesktop.Login()
			win.show();
			var el = Ext.get('loginWin');
			var map = new Ext.KeyMap(el, {
						key : Ext.EventObject.ENTER,
						fn : function() {
							win.onLogin();
						}
					});
			// 默认焦点
			var f = Ext.getCmp('txtLoginName');
			f.focus(false, 100);

			// 皮肤
			if (getCookie('theme_def') != null) {
				if (getCookie('theme_def') == 'blue')
					Ext.getCmp('btn_login_skin').toggle(true, false);
			}
			// 记住我
			if (getCookie('txtLoginName') != null) {
				Ext.getCmp('btn_login_rememberme').toggle(true, false);
				Ext.getCmp('txtLoginName').setValue(getCookie('txtLoginName'));
				Ext.getCmp('txtPwd').setValue(getCookie('txtPwd'));
				Ext.getCmp('uiType').setValue(getCookie('uiType'));
			}

		});
